Order with PayPal
Firstly make sure you've configured your app for PayPal payments.
Your configuration should look like below from v2/settings/payment endpoint:
"supportedPaymentTypes": [
{
"configuration": {
"accessToken": "access_token$sandbox$tfpvpz222dvp23mg$8f88c8a7927315e96e5d6bd97c4496ea"
},
"paymentType": "PayPal",
"description": "Some paypal descriptions here"
}
],
Making an order
You should create a new order as same as other payment methods. Just send PaymentType as PayPal at /v2/orders/user/ endpoint.
When you send as PayPal, Token Parameter will be returned in payment
object like below:
{
"success": true,
"data": {
"order": {
"id": "5ef9aa120460850c08148370",
"..." : "all the other stuffs..."
},
"payment": {
"isSuccess": true,
"state": "None",
"stateCode": 0,
"token": "eyJ2ZXJzaW9uIjoyLCJlbnZpcm9ubWVudCI6InNhbmRib3giLCJhdXRob3JpemF0aW9uRmluZ2VycHJpbnQiOiJleUowZVhBaU9pSktWMVFpTENKaGJHY2lPaUpGVXpJMU5pSXNJbXRwWkNJNklqSXdNVGd3TkRJMk1UWXRjMkZ1WkdKdmVDSXNJbWx6Y3lJNklrRjFkR2g1SW4wLmV5SmxlSEFpT2pFMU9UTTFNRFkzTURjc0ltcDBhU0k2SW1WbVlUY3dOVFZtTFRWbVltUXROR0l3TXkxaU5UY3hMVFkwTkRoaU5qVmhNV1kwT0NJc0luTjFZaUk2SW5SbWNIWndlakl5TW1SMmNESXpiV2NpTENKcGMzTWlPaUpCZFhSb2VTSXNJbTFsY21Ob1lXNTBJanA3SW5CMVlteHBZMTlwWkNJNkluUm1jSFp3ZWpJeU1tUjJjREl6YldjaUxDSjJaWEpwWm5sZlkyRnlaRjlpZVY5a1pXWmhkV3gwSWpwbVlXeHpaWDBzSW5KcFoyaDBjeUk2V3lKdFlXNWhaMlZmZG1GMWJIUWlYU3dpYjNCMGFXOXVjeUk2ZTMxOS5WUm5FcGF1VGU3aHZkVzhvZC1VS0pQTGw3dFFudjZvN3V6LWdRRFNzV2t6ZmRwUWRLNTktWldBcldCd3AxRWpKclRobGNiOVFKc25Pc2h2MDNweGRudyIsImNvbmZpZ1VybCI6Imh0dHBzOi8vYXBpLnNhbmRib3guYnJhaW50cmVlZ2F0ZXdheS5jb206NDQzL21lcmNoYW50cy90ZnB2cHoyMjJkdnAyM21nL2NsaWVudF9hcGkvdjEvY29uZmlndXJhdGlvbiIsImdyYXBoUUwiOnsidXJsIjoiaHR0cHM6Ly9wYXltZW50cy5zYW5kYm94LmJyYWludHJlZS1hcGkuY29tL2dyYXBocWwiLCJkYXRlIjoiMjAxOC0wNS0wOCJ9LCJjaGFsbGVuZ2VzIjpbXSwiY2xpZW50QXBpVXJsIjoiaHR0cHM6Ly9hcGkuc2FuZGJveC5icmFpbnRyZWVnYXRld2F5LmNvbTo0NDMvbWVyY2hhbnRzL3RmcHZwejIyMmR2cDIzbWcvY2xpZW50X2FwaSIsImFzc2V0c1VybCI6Imh0dHBzOi8vYXNzZXRzLmJyYWludHJlZWdhdGV3YXkuY29tIiwiYXV0aFVybCI6Imh0dHBzOi8vYXV0aC52ZW5tby5zYW5kYm94LmJyYWludHJlZWdhdGV3YXkuY29tIiwiYW5hbHl0aWNzIjp7InVybCI6Imh0dHBzOi8vb3JpZ2luLWFuYWx5dGljcy1zYW5kLnNhbmRib3guYnJhaW50cmVlLWFwaS5jb20vdGZwdnB6MjIyZHZwMjNtZyJ9LCJ0aHJlZURTZWN1cmVFbmFibGVkIjpmYWxzZSwicGF5cGFsRW5hYmxlZCI6dHJ1ZSwicGF5cGFsIjp7ImRpc3BsYXlOYW1lIjoiSm9obiBEb2UncyBUZXN0IFN0b3JlIiwiY2xpZW50SWQiOiJBVEx6WGw0UHdKX3R5cEZEb2NnS0t4SDBhZ0QtYnNUVTVWVGpVcDM5SHk5cU9Gb1BkdTFkNkZIR1czazV2bDBkeDFPRzhnemgyUWR3UEs5MyIsInByaXZhY3lVcmwiOiJodHRwczovL2V4YW1wbGUuY29tIiwidXNlckFncmVlbWVudFVybCI6Imh0dHBzOi8vZXhhbXBsZS5jb20iLCJiYXNlVXJsIjoiaHR0cHM6Ly9hc3NldHMuYnJhaW50cmVlZ2F0ZXdheS5jb20iLCJhc3NldHNVcmwiOiJodHRwczovL2NoZWNrb3V0LnBheXBhbC5jb20iLCJkaXJlY3RCYXNlVXJsIjpudWxsLCJhbGxvd0h0dHAiOnRydWUsImVudmlyb25tZW50Tm9OZXR3b3JrIjpmYWxzZSwiZW52aXJvbm1lbnQiOiJvZmZsaW5lIiwidW52ZXR0ZWRNZXJjaGFudCI6ZmFsc2UsImJyYWludHJlZUNsaWVudElkIjoibWFzdGVyY2xpZW50MyIsImJpbGxpbmdBZ3JlZW1lbnRzRW5hYmxlZCI6dHJ1ZSwibWVyY2hhbnRBY2NvdW50SWQiOiJVU0QiLCJjdXJyZW5jeUlzb0NvZGUiOiJVU0QifSwibWVyY2hhbnRJZCI6InRmcHZwejIyMmR2cDIzbWciLCJ2ZW5tbyI6Im9mZiJ9"
}
}
}
Get this token (data > payment > token) and use it for client-side paypal payment
After completed a successful payment. Send request to /v2/orders/complete endpoint with Nonce parameter.
Nonce is included at root object like below:
{
"orderId": "5ef9aa120460850c08148370",
"nonce": "YOUR_NONCE_HERE",
"paymentType": "PayPal"
}
- You should use following endpint if payment was failed: orders//failure
Stock will be restored but your products still remain in your shopping cart after this operation. You must create a new order after this operation executed once.